home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Memphis Amiga Group / MAG Disk (1990-07)(Memphis Amiga Group).zip / MAG Disk (1990-07)(Memphis Amiga Group).adf / MandelMountains / MandelMountains.doc < prev    next >
Text File  |  1989-12-29  |  16KB  |  359 lines

  1.  
  2.  
  3.  
  4.                   MandelMountains V2.0 by Mathias Ortmann
  5.  
  6.  
  7. Discover the Mandelbrot and Julia Sets From a Completely New Point of View! 
  8.  
  9.  
  10. MandelMountains gives you the ability to render wonderful three-dimensional
  11. images of close-ups of the Mandelbrot and - in V2.0! - also Julia sets.
  12. The well-known color strips of the usual Mandelbrot images become at once
  13. mountainsides that smoothly climb to high plateaus, leaving deep valleys
  14. between them.
  15.  
  16. You may have already seen images of this type (e.g. on the covers of the
  17. books "The Beauty of Fractals - Images of Complex Dynamical Systems" by
  18. H.-O. Peitgen and P.H. Richter or "The Science of Fractal Images", edited
  19. by H.-O. Peitgen and D. Saupe) - here and now you have the tool to create
  20. them on your own! MandelMountains allows you to produce high-quality
  21. non-interlaced or interlaced (and even overscan) images of arbitrary areas
  22. of the Mandelbrot/Julia sets.  You can easily define magnification windows
  23. to zoom deeper and deeper into this fascinating world.
  24.  
  25. Since the development of this program took a lot of time and work, I
  26. release it as shareware.  This means that if you like and use this program,
  27. you should become a registered MandelMountains user by sending me a little
  28. contribution of about $10.  This will make it possible to develop subsequent
  29. versions of this program.
  30. Suggestions, comments and bug reports are welcome, too.
  31.  
  32. This is my address:
  33.  
  34.                        Mathias Ortmann
  35.                        Strindbergstr. 5
  36.                      D-8000 Munich 60
  37.  
  38.                        WEST GERMANY
  39.  
  40.  
  41. IMPORTANT!   MandelMountains V2.0 requires the following libraries to be in
  42. your libs:-Directory:
  43.  - mathtrans.library
  44.  - mathieeedoubbas.library
  45.  - mathieeedoubtrans.library
  46.  
  47.  
  48. This documentation does NOT cover the theory of fractal geometry, complex
  49. numbers and Mandelbrot/Julia sets.  If you never heard anything about these
  50. things, I recommend to read the books mentioned below.
  51.  
  52.  
  53. 1. The Rendering Method
  54.  
  55. The image is rendered from front to back.  A virtual horizon line prevents
  56. hidden areas from being displayed.  The brightness of the surface is
  57. determined by the angle the light falls on it.  If the number of iterations
  58. exceeds a certain (user-defineable) value, the pixel is set in color
  59. instead of gray, thus remains of the usual color strips are visible on the
  60. high plateaus, a fact which greatly increases the plasticity of the image.
  61.  
  62. The iterations are effected in pure, speed-optimized assembler code, using
  63. the Motorola Fast Floating Point format (FFP), while all other calculations
  64. occur in double-precision IEEE standard format.  This yields acceptable
  65. calculation times (around 20 minutes to 4 hours) without precision
  66. problems, even at magnification factors up to 10000.
  67.  
  68. MandelMountains V2.0 now also supports double precision for the entire
  69. calculation process, including the main iteration loop.  Using this feature
  70. will almost triple computation times, but there are practically no
  71. restrictions any more concerning the magnification factor.
  72. The 1.3 mathieeedoubbas/doubtrans libraries support 68881/68882 math
  73. coprocessors.  Owners of these expensive (but useful!) devices thus should
  74. always use double-precision mode (since I don't belong to this privileged
  75. class of people, I couldn't test it, so I can't say if it works, how it
  76. works and how fast it works, but presumeably it should be even faster than
  77. FFP single precision mode!).
  78.  
  79.  
  80. 2. The Display Format
  81.  
  82. You can choose between three image sizes: Small for quick test
  83. calculations, Normal for the usual screen size (320x200/320x256) and Full
  84. for overscan format (352x240/352x282), which I recommend as ideal size.
  85. MandelMountains supports NTSC and PAL Amigas and recognizes by itself on
  86. which type of machine it is running.  All images are generated in 32 color
  87. mode: 16 colors for the gray tones and 16 colors for the surface color range.
  88. Optionally you can enable the interlace mode, which will double the number
  89. of available colors: You now have 32 gray and 32 color tones, which will
  90. result in much smoother color ranges.  Computation time is not affected by
  91. using interlace or non-interlace mode.
  92.  
  93.  
  94. 3. The File Format
  95.  
  96. MandelMountains writes standard IFF files with an additional "MMD1" chunk
  97. containing all parameters of the image, so you can load previously
  98. generated images and make further magnifications.  You can load
  99. MandelMountains files with all available graphics software, but note that
  100. if the image is saved again, the MMD1 chunk will be destroyed, and you
  101. cannot load it with MandelMountains any more.
  102. MandelMountains V2.0 is fully backwards compatible with V1.1, so you
  103. can load your previously generated images without problems.
  104.  
  105.  
  106. 4. The Parameters
  107.  
  108. An image is defined by several parameters.  You can see and modify all of
  109. them in the window MandelMountains opens on the Workbench screen.
  110.  
  111. The cx/cy values are used only when working in Julia set mode.  They are the
  112. real/imaginary part of the fixed parameter c in the term z = z²+c.
  113. See below for a detailed description of how to generate images of Julia sets.
  114.  
  115. In the next two lines, there are the xmin/xmax/ymin/ymax values.  They
  116. determine the rectangular part of the Mandelbrot set that is to be shown in
  117. the image (xmin/xmax represent the range of the real part, ymin/ymax of the
  118. imaginary part of c [in Julia set mode: z] in the term z = z²+c).
  119.  
  120. The Depth value limits the number of iterations.  If then the value of z
  121. has not exceeded a certain maximum, the point will be drawn in black.
  122. Increasing this value will result in a more detailed rendering of the
  123. border between color and black, but it will also increase computation time
  124. if there are larger areas of black.  Normally, a Depth of 400 to 1000 is
  125. sufficient.
  126.  
  127. Linear/Nonlinear/Super-Nonlinear Transformation: If your mountainsides
  128. look extremely steep, you should switch to Nonlinear Transformation
  129. (especially useful for magnifications of the Seahorse Valley!).
  130. For extreme cases, I added the Super-Nonlinear transformation, which
  131. is especially useful for magnifications of the western side of the Seahorse
  132. Valley.
  133.  
  134. ColorMin: If you wish to have the surface of the plateaus colored (and
  135. you surely will!), you set ColorMin to the number of iterations from which on
  136. a pixel is to be drawn in color.  Increasing this value will make the colored
  137. areas smaller.  The range of ColorMin is normally from 20 to 300 (set it to 0
  138. if you wish no coloring).
  139.  
  140. ColorDiv: This value determines the "step rate" for the surface colors.
  141. For example: You have a ColorMin of 100 and a ColorDiv of 50.  The number
  142. of iterations for a point is 300.  The color of the point is now
  143. (300-100)/50, i.e. 4.  Usually ColorDiv is around 50 to 150.  It is not
  144. very critical, but if you choose it far too low, the colored areas on
  145. your surface will look rather fragmented.  If you choose it too high, they
  146. will all have more or less the same color.
  147.  
  148. HZoom: This very important value is the decimal logarithm of the factor
  149. all heights are multiplied with.  If you choose this value too low, the
  150. whole surface will be flat like a sheet of paper; if you choose it too
  151. high, you will not see more than some vertical walls.  This value is
  152. probably the most critical and must be chosen carefully.  It depends very
  153. much on the magnification factor (increase it after each magnification) and
  154. can range from 2 (initial picture) to 30 (blow-ups of details in the
  155. Seahorse Valley, for example).
  156. Remember that for nonlinear and super-nonlinear transformation, HZoom
  157. must be considerably higher than for linear transformation.
  158.  
  159. HSmooth: Sometimes it may occur that the border of a plateau looks rather
  160. fragmented.  In this case, simply increase the HSmooth value.  It can range
  161. from 0 up to more than 200, depending on the HZoom value you are using, but
  162. is not very critical.  Set it to 50 for normal images.
  163.  
  164.  
  165. It must be said that you will have to experiment a little to get perfect
  166. results, but soon you'll get a feeling for these things (look at the sample
  167. pictures and their parameters).
  168.  
  169. The 'Parameters' menu of MandelMountains V2.0 contains the submenu 'Suggest'
  170. which allows you to precalculate two of the above parameters.  See below
  171. for a further description of this feature.
  172.  
  173.  
  174. 5. The Menus
  175.  
  176. Project Menu:
  177.  
  178. Choosing the Load Image or Save Image option will bring up a file requester
  179. (thanks Justin!) that allows you to choose a file name for the image to
  180. load/save.  Images are compressed before saving.
  181.  
  182. Start Rendering: This option clears the current screen, brings it to front
  183. and starts the computation.
  184.  
  185. Mode: You can select between Mandelbrot and Julia Mode (see below for details
  186. about Julia sets). (NEW in Version 2.0)
  187.  
  188. Precision: This submenu allows you to choose either single precision (FFP)
  189. or double precision (IEEE) mode. (NEW in Version 2.0)
  190.  
  191.  
  192. Parameters Menu:
  193.  
  194. Zoom In brings the current screen to front and creates a mouse-directable
  195. magnification window.  Pressing the left mouse button while moving the
  196. mouse to the right/left changes the size of the window.  The right mouse
  197. button confirms the magnification.
  198.  
  199. Restore Aspect is useful when you have entered xmin/xmax/ymin/ymax values
  200. by hand.  By restoring the aspect of width and height you ensure that the
  201. image does not look squeezed.
  202.  
  203. Suggest is a new feature of MandelMountains V2.0, which I implemented
  204. to give you a basis for your experiments by generating suggestions for the
  205. parameters Depth and HZoom.
  206. After some initial problems, I found a quite adequate way to precalculate the
  207. HZoom value.  The results of the algorithm are surprisingly good - in most
  208. cases they need not be altered at all and thus will save you a lot of
  209. experimenting time!
  210. The algorithm needs some time to compute its result.  The percentage
  211. of completion is shown by a horizontal bar.  You can cancel the computation
  212. by pressing the Escape key, or terminate it at any time by pressing
  213. <Return>, accepting the current state of evaluation, which in most
  214. cases is not too far away from the final result.
  215.  
  216. Screen allows you to choose one of the three standard screen sizes and
  217. to toggle interlace mode.
  218.  
  219.  
  220. Color Range Menu:
  221.  
  222. This menu controls range of surface colors.  Different color ranges may
  223. greatly change the impression of an image, so experiment a little.
  224. Available as from/to colors are: Black, Blue, Red, Magenta, Green, Cyan,
  225. Yellow and White.  Additionally, you can cycle the colors by pressing F1/F2
  226. at any time. (NEW in Version 2.0)
  227.  
  228.  
  229. 6. Julia Sets
  230.  
  231. Julia sets are generated by varying the initial value of z in the iteration
  232. formula z = z²+c, leaving c constant for each pixel (Mandelbrot set:
  233. The parameter c is varied instead of z, and he iteration always starts
  234. with z = 0).
  235. There exists an infinite number of Julia sets, all determined by the
  236. fixed parameter c (displayed in the top line of the parameter block, cx is
  237. the real, cy the imaginary part of c).
  238. You can either enter a c value directly by hand, or choose it from a
  239. position out of the Mandelbrot set.  This is done as follows:
  240. 1. Load an arbitrary MandelMountains image of the area you are interested in.
  241. 2. Select "Zoom In" from the Parameters Menu.
  242. 3. Mark the desired point with the TOP LEFT edge of the zoom window and
  243.    press the right mouse button.
  244. 4. Select "Julia Set" from the Project/Mode Menu.  The parameters xmin/ymin,
  245.    representing the selected top left edge, will be copied to the cx/cy
  246.    fields.  The other values will be initialized with default values,
  247.    giving the best possible starting environment for most Julia sets.
  248. Experimenting with this feature, you will discover a fascinating resemblance
  249. of the Julia sets to the area their parameter c is taken from (e.g. for a
  250. c value out of the Seahorse Valley, there will be the same seahorse tails
  251. and eyes as in the Mandelbrot set).  Thus the Mandelbrot set can be
  252. interpreted as a "one-page dictionary" of all existing Julia sets.
  253. I recommend to choose the c values mainly from the border area of the
  254. Mandelbrot set, because otherwise the resulting Julia sets will look
  255. rather boring.
  256. Certainly, you can zoom into Julia sets exactly like into the Mandelbrot set.
  257.  
  258.  
  259. 7. When is a Picture Finished?
  260.  
  261. Normally, you will wait until the screen is filled completely (up to the
  262. upper edge).  In this case, the program stops the computation by itself.
  263. Sometimes, it may be necessary for aesthetical reasons to interrupt the
  264. rendering earlier, resulting in a black background of the image.  In this
  265. case, you simply have to click on the STOP Gadget at the right moment
  266. (Initial.NTSC, Julia1.PAL and Julia2.PAL were generated using this method).
  267.  
  268.  
  269. Important:
  270.  
  271. Clicking on the gadget near the depth gadgets of MandelMountain's
  272. workbench window will make the current screen appear (with correct
  273. centering if it's an overscan screen), clicking on the screen and then
  274. pressing the right mouse button will make the screen disappear again.
  275.  
  276. If you haven't got a true Fast-RAM machine, I recommend to click the screen
  277. to back during computation.  This will save memory cycles for the CPU and
  278. greatly reduce computation time.
  279.  
  280.  
  281. Special thanks go to Heinz-Otto Peitgen for publishing the formula that
  282. smoothes the surface of the Mandelbrot set in such a perfect way! It is
  283. called Continuous Potential Method for Mandelbrot Set (CPM/M) and can be
  284. found in chapter 4.2.4 of the book
  285.  
  286. Heinz-Otto Peitgen/Dietmar Saupe (editors): The Science of Fractal Images
  287. Springer-Verlag New York Berlin Heidelberg 1988        ISBN 0-387-96608-0
  288. Springer-Verlag Berlin Heidelberg New York 1988        ISBN 3-540-96608-0
  289.  
  290.  
  291. If you are looking for an excellent introduction into fractal theory,
  292. history and mathematical backgrounds of the Mandelbrot and Julia sets,
  293. including a couple of wonderful color pictures, you should take a look at
  294.  
  295. H.-O. Peitgen/P.H. Richter:
  296. The Beauty of Fractals - Images of Complex Dynamical Systems
  297. Springer-Verlag New York Heidelberg Berlin Tokyo 1986  ISBN 0-387-15851-0
  298. Springer-Verlag Berlin Heidelberg New York Tokyo 1986  ISBN 3-540-15851-0
  299.  
  300.  
  301.  
  302.  
  303.  
  304.       --------------------------------------------------------------
  305.                          PathMaster File Selector
  306.                        User Documentation 89-06-26.
  307.       --------------------------------------------------------------
  308.  
  309. Copyright © 1989 by Justin V. McCormick.
  310. All Rights Reserved.
  311.  
  312.   The selector is completely dynamic and asynchronous; you may change
  313. directories, select files, scroll the file list, etc., while the selector
  314. is scanning a directory.
  315.  
  316.   The three Sort Gadgets (Alpha, Size, and Date) work like switches.  For
  317. instance, if you click on the "Alpha" Sort Gadget, the gadget will remain
  318. highlighted ("On") when you release the mouse button.  The File Selector
  319. will now alphabetize directories automatically until you turn the Sort
  320. Gadget "off" by clicking it again, or click on a differnt Sort Gadget.
  321.  
  322.   Clicking the Menu Button activates the FILE or PATH String Gadget,
  323. allowing you to type in a new file or pathname without having to click
  324. inside of the string gadgets first.  Also, some keyboard shortcuts are
  325. available:
  326.  
  327.     ESCAPE key        - Same as clicking on the "Cancel!" gadget.
  328.     Cursor-Up key     - Same as clicking on the Up Arrow gadget.
  329.     Cursor-Down key   - Same as clicking on the Down Arrow gadget.
  330.     Shift-RETURN keys - Toggle between FILE and PATH gadget.
  331.  
  332.   Note that if the PATH, FILE, or PATTERN String Gadgets are in use, the
  333. keyboard shortcuts are disabled.
  334.  
  335.   The selector has a software path length limit of 344 characters.  You
  336. will receive a warning message in the titlebar if you try to exceed this
  337. limit.
  338.  
  339.  
  340.         The PathMaster name is a trademark of Justin V. McCormick.
  341.  
  342.        PathMaster File Selector source and documentation written by:
  343.  
  344.                            Justin V. McCormick.
  345.                  Copyright © 1989 by Justin V. McCormick.
  346.                            All Rights Reserved.
  347.  
  348.  * --------------------------------------------------------------------- *
  349.                     THIS SOFTWARE IS PROVIDED "AS IS".
  350.  
  351.        NO REPRESENTATIONS OR WARRANTIES ARE MADE WITH RESPECT TO THE
  352.        ACCURACY, RELIABILITY, PERFORMANCE, CURRENTNESS, OR OPERATION
  353.             OF THIS SOFTWARE, AND ALL USE IS AT YOUR OWN RISK.
  354.  
  355.                THE ABOVE AUTHOR ASSUMES NO RESPONSIBILITY OR
  356.       LIABILITY WHATSOEVER WITH RESPECT TO YOUR USE OF THIS SOFTWARE.
  357.  * --------------------------------------------------------------------- *
  358.  
  359.